MySQL FOREIGN KEY கட்டுப்பாடு
FOREIGN KEY கட்டுப்பாடு அட்டவணைகளுக்கு இடையேயான இணைப்புகளை அழிக்கக்கூடிய செயல்களைத் தடுக்கப் பயன்படுகிறது.
ஒரு FOREIGN KEY என்பது ஒரு அட்டவணையில் உள்ள ஒரு புலம் (அல்லது புலங்களின் தொகுப்பு), இது மற்றொரு அட்டவணையில் உள்ள PRIMARY KEY ஐக் குறிக்கிறது.
Foreign key உள்ள அட்டவணை child table என்றும், primary key உள்ள அட்டவணை referenced அல்லது parent table என்றும் அழைக்கப்படுகிறது.
பின்வரும் இரண்டு அட்டவணைகளைப் பாருங்கள்:
Persons அட்டவணை
| PersonID | LastName | FirstName | Age |
|---|---|---|---|
| 1 | Hansen | Ola | 30 |
| 2 | Svendson | Tove | 23 |
| 3 | Pettersen | Kari | 20 |
Orders அட்டவணை
| OrderID | OrderNumber | PersonID |
|---|---|---|
| 1 | 77895 | 3 |
| 2 | 44678 | 3 |
| 3 | 22456 | 2 |
| 4 | 24562 | 1 |
"Orders" அட்டவணையில் உள்ள "PersonID" நெடுவரிசை "Persons" அட்டவணையில் உள்ள "PersonID" நெடுவரிசையைக் குறிக்கிறது என்பதைக் கவனிக்கவும்.
"Persons" அட்டவணையில் உள்ள "PersonID" நெடுவரிசை "Persons" அட்டவணையில் PRIMARY KEY ஆகும்.
"Orders" அட்டவணையில் உள்ள "PersonID" நெடுவரிசை "Orders" அட்டவணையில் FOREIGN KEY ஆகும்.
குறிப்பு:
FOREIGN KEY கட்டுப்பாடு parent table இல் உள்ள மதிப்புகளில் ஒன்றாக இருக்க வேண்டும் என்பதால், foreign key நெடுவரிசையில் தவறான தரவைச் செருகுவதைத் தடுக்கிறது.
CREATE TABLE இல் FOREIGN KEY
பின்வரும் SQL "Orders" அட்டவணை உருவாக்கப்படும் போது "PersonID" நெடுவரிசையில் FOREIGN KEY ஐ உருவாக்குகிறது:
CREATE TABLE Orders (
OrderID int NOT NULL,
OrderNumber int NOT NULL,
PersonID int,
PRIMARY KEY (OrderID),
FOREIGN KEY (PersonID) REFERENCES Persons(PersonID)
);
ஒரு FOREIGN KEY கட்டுப்பாட்டிற்கு பெயரிட அனுமதிக்க, மற்றும் பல நெடுவரிசைகளில் FOREIGN KEY கட்டுப்பாட்டை வரையறுக்க, பின்வரும் SQL தொடரியலைப் பயன்படுத்தவும்:
CREATE TABLE Orders (
OrderID int NOT NULL,
OrderNumber int NOT NULL,
PersonID int,
PRIMARY KEY (OrderID),
CONSTRAINT FK_PersonOrder FOREIGN KEY (PersonID)
REFERENCES Persons(PersonID)
);
ALTER TABLE இல் FOREIGN KEY
அட்டவணை ஏற்கனவே உருவாக்கப்பட்ட பிறகு "PersonID" நெடுவரிசையில் FOREIGN KEY கட்டுப்பாட்டை உருவாக்க, பின்வரும் SQL ஐப் பயன்படுத்தவும்:
ALTER TABLE Orders
ADD FOREIGN KEY (PersonID) REFERENCES Persons(PersonID);
ஒரு FOREIGN KEY கட்டுப்பாட்டிற்கு பெயரிட அனுமதிக்க, மற்றும் பல நெடுவரிசைகளில் FOREIGN KEY கட்டுப்பாட்டை வரையறுக்க, பின்வரும் SQL தொடரியலைப் பயன்படுத்தவும்:
ALTER TABLE Orders
ADD CONSTRAINT FK_PersonOrder
FOREIGN KEY (PersonID) REFERENCES Persons(PersonID);
FOREIGN KEY கட்டுப்பாட்டை நீக்குதல்
ஒரு FOREIGN KEY கட்டுப்பாட்டை நீக்க, பின்வரும் SQL ஐப் பயன்படுத்தவும்:
ALTER TABLE Orders
DROP FOREIGN KEY FK_PersonOrder;